// src/api/axios.js

// 导入 axios 用于发送 HTTP 请求
import axios from 'axios';

// 导入 auth store，用于获取用户的 JWT token
import { useAuthStore } from '../store/auth';

// 创建一个 axios 实例，设置基础 URL
const instance = axios.create({
    baseURL: import.meta.env.VITE_API_BASE || '/api', // 动态读取环境变量中的 API 地址
    // 👇 可以加一些默认配置
    timeout: 30000, // 请求超时时间，x单位是毫秒
    headers: {
        'Content-Type': 'application/json'
    }
});

// ✅ 请求拦截器：请求发送前统一处理（如添加 Authorization）
instance.interceptors.request.use(
    config => {
        const auth = useAuthStore();
        if (auth.token) {
            config.headers.Authorization = `Bearer ${auth.token}`; // 携带 token
        }
        return config;
    },
    error => Promise.reject(error) // 处理请求错误
);

// 响应拦截器，可统一处理错误
instance.interceptors.response.use(
    response => response, // 直接返回结果
    error => {
        // 可以根据 error.response.status 做统一错误提示或跳转
        console.error('HTTP 错误：', error);
        return Promise.reject(error);
    }
);

// 导出实例，在项目中统一使用
export default instance;
